package uscdb.service;

import java.io.File;
import java.util.Map;

import uscdb.pageModel.DataGrid;
import uscdb.pageModel.Logic;
import uscdb.pageModel.PageHelper;

/**
 * Logic 服务类
 */
public interface LogicServiceI {

	/**
	 * 功能：返回前 number 个逻辑的点记率数据 {[逻辑名 - 点记率]}
	 * 
	 * @param number
	 *            页面传过来的数量
	 * 
	 * @return map
	 */
	public Map<String, Long> logicHeatChart(String number);

	/**
	 * 功能：增加logic点击率
	 * 
	 * @param logic
	 *            需要增加点击率的logic
	 */
	public void increaseHeat(Logic logic);

	/**
	 * 功能：获取logic数据表格
	 * 
	 * @param logic
	 *            参数
	 * @param ph
	 *            分页帮助类
	 * @return
	 */
	public DataGrid dataGrid(Logic logic, PageHelper ph);

	/**
	 * 功能：添加logic
	 * 
	 * @param logic
	 */
	public void add(Logic logic);

	/**
	 * 功能：获取 logic 对象
	 * 
	 * @param id
	 * @return
	 */
	public Logic get(String id);

	/**
	 * 功能：修改 logic
	 * 
	 * @param logic
	 */
	public void edit(Logic logic);

	/**
	 * 功能：删除 logic
	 * 
	 * @param id
	 */
	public void delete(String id);

	/**
	 * 功能：根据logic压缩包导入logic
	 * 
	 * @param file
	 *            zip压缩包
	 * @return
	 */
	public Boolean importLogic(File file, Logic logic);

	/**
	 * 功能：导出目前所有的logic
	 * 
	 * @param targetDirPath
	 *            导出logic目录的目标路径
	 * 
	 * @param deleteFlag
	 *            是否删除源文件，建议是删除，因为写文件是追加的形式，不删除会影响下一次使用
	 * @return
	 */
	public Boolean exportLogic(String targetDirPath, Boolean deleteFlag);
}
